package com.ruoyi.meeting.mapper;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.meeting.domain.TmdMeetingApplication;
import com.ruoyi.meeting.domain.TmdMeetingManager;
import com.ruoyi.meeting.dto.TmdMeetingPersonDto;
import com.ruoyi.meeting.vo.TmdMeetingApplicationVo;
import com.ruoyi.system.domain.SysRoleDept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 会议列表Mapper接口
 * 
 * @author ruoyi
 * @date 2024-04-22
 */
@Mapper
public interface TmdMeetingApplicationMapper 
{
    /**
     * 查询会议列表
     * 
     * @param id 会议列表主键
     * @return 会议列表
     */
    public TmdMeetingApplication selectTmdMeetingApplicationById(Long id);

    /**
     * 查询会议列表列表
     * 
     * @param tmdMeetingApplication 会议列表
     * @return 会议列表集合
     */
    public List<TmdMeetingApplication> selectTmdMeetingApplicationList(TmdMeetingApplication tmdMeetingApplication);

    /**
     * 新增会议列表
     * 
     * @param tmdMeetingApplication 会议列表
     * @return 结果
     */
    public int insertTmdMeetingApplication(TmdMeetingApplication tmdMeetingApplication);

    /**
     * 修改会议列表
     * 
     * @param tmdMeetingApplication 会议列表
     * @return 结果
     */
    public int updateTmdMeetingApplication(TmdMeetingApplication tmdMeetingApplication);

    /**
     * 删除会议列表
     * 
     * @param id 会议列表主键
     * @return 结果
     */
    public int deleteTmdMeetingApplicationById(Long id);

    /**
     * 批量删除会议列表
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTmdMeetingApplicationByIds(String[] ids);

    List<TmdMeetingManager> selectAddList();

    List<SysUser> selectUserList();

    SysUser getUserPhoneNumber(Integer userId);


    List<SysUser> getDeptUserList(Integer deptId);


    Integer getLinkmanId(Long id);

    SysUser getUser(Integer userId);

//    TmdMeetingApplicationVo selectTmdMeetingApplicationVoById(Long id);

//    void insertMeetingPerson(TmdMeetingPersonDto tmdMeetingPersonDto);
//
//    void insertMeetingPerson1(TmdMeetingPersonDto tmdMeetingPersonDto);
//
//    void insertMeetingPerson2(TmdMeetingPersonDto tmdMeetingPersonDto);

    int insertMeetingPersonId(@Param("tmdMeetingPersonDto") TmdMeetingPersonDto tmdMeetingPersonDto);

    int insertSharedId(@Param("tmdMeetingPersonDto")TmdMeetingPersonDto tmdMeetingPersonDto);

    List<TmdMeetingManager> getMeetingName();

    void beginning(Long id);

    void endless(Long id);


    int getAddressIdById(Long id);

    void beginningRoom(int addressIdById);

    TmdMeetingManager getRoom(Long id);

    void endRoom(Long addressId);

    TmdMeetingApplicationVo getMeetingRecord(Long id);

    String getMeetingRoom(Long addressId);

    List<TmdMeetingManager> getMeetingPlace();

    Integer getHostId(Long id);

    void insertTmdMeetingPerson(TmdMeetingPersonDto tmdMeetingPersonDto);

    List<TmdMeetingPersonDto> selectJoinAndShareStaff(Long conferenceId);
}
